1. Field of the Invention
The field of the invention is that of the synchronizing of computer systems with regard to dates which change over time.
2. Description of Related Art
In a computer system, it is useful to be able to date various events involving the system. It is for example beneficial to know the date expressed in years, months, days, hours, minutes and seconds of creation or modification of a file. For certain events which trigger particular procedures, it is beneficial to pinpoint the date down to a millisecond, or even a microsecond or a portion of a microsecond.
To do this, the system must have at its disposal a reference date which changes over time through incrementation of its value, for example by means of a clock. It is useful to be able to initialize a value of this date at any moment. For example, when starting the system up, one may wish to take as the initial date that contained in a memory incremented by a backup battery, independent of an interruption in the power supply to the system. After starting the system up, one may wish to modify the current date so as to take account of various essentials such as, by way of non-limiting examples, an alteration of local time, a rescheduling, a clock drift, a loss of backup battery or a synchronization with a different system.
To accurately date certain events handled by a processor, it is beneficial for the processor to possess a current date value in a private register to which it has fast access. This value is hardware incremented by means of a clock which additionally regulates the sequencing of the processor.
According to the known state of the art, following a request to modify the current date value, the processor executes a sequence which consists essentially in adding a difference .DELTA., representative of the offset between the current date values before and after modification, to the current value contained in its private register. It is thus made certain that, regardless of the instant at which the processor modifies the date in its register, the new current value takes account of the changing of the date over time. In a system comprising several processors, it is possible to envisage each processor performing, successively or simultaneously, the aforenoted sequence. It should be observed that, in the case where all the processors are regulated on the basis of the same clock, if a second processor executes the sequence at an instant subsequent to that at which a first processor has executed it, the private registers of the two processors have been incremented by the same amount between these two instants and the values of the private registers of the two processors are identical after the last execution of the sequence. This observation remains valid for any number of processors.
In a system consisting of several modules, each module constituting a subsystem which comprises one or more processors, it is possible to dispatch to the modules a signal emanating from one and the same clock so as to regulate all the processors of the system in synchronism. For example, U.S. Pat. No. 5,305,453 describes a solution for setting the dispatched clock signal to an identical phase on reception thereof in each module. However, this requires identical technology of construction for all the modules: same operating frequency, same passband for the physical components, etc. Moreover, this also requires specialized physical link-ups between modules. Any replacement or any subsequent addition of a module in order to increase the performance of the system requires that the initial technology be retained or that special adaptations be made and often requires additional wiring.
Execution runs of sequences which consist in updating a date by adding the difference .DELTA. to the contents of the private register of each processor, as mentioned above, raise a few problems in respect of dispensing with a clock reference which is physically common to all the modules of a computer system. This is because, in a system in which each module has at its disposal a specific clock reference, distinct from that of the other modules, if a processor of a second module adds the difference .DELTA. at an instant t+dt after an instant t at which a processor of a first module adds the difference .DELTA., it is difficult to be certain that the private registers of the two processors have been incremented by the same amount between these two instants since distinct clocks do not necessarily have identical frequencies and phases. Even assuming that perfect synchronization is possible between the processors of all the modules of the system, so that all the execution runs of the sequence described take place at the same instant t, problems of the drifting of the date values between processors of various modules remain unresolved.
Problems of the drifting of the date values between two processors arise when the two processors are regulated by independent clock signals. If at an initial instant the private register of the first processor contains a date value identical to that contained in the private register of the second processor, the incrementing of the private registers by different clock signals causes a discrepancy between the two values which increases over time, resulting in a drifting of the date value of one processor relative to the other. By periodically placing a new date value in the private register of each processor, for example before the drift causes the date values to depart from a given accuracy range, date values which are identical in this accuracy range are obtained for the processors of all the modules. This makes it possible to synchronize the system with regard to a single date, considered in the given accuracy range. However, an addition of .DELTA. as described above is not applicable, in particular because it is difficult to constrain the value of the drift between modules with precision.